package com.xoa.controller.book;

import com.xoa.model.book.BookManage;
import com.xoa.service.book.BookManageService;
import com.xoa.util.ToJson;
import com.xoa.util.common.L;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 创建作者:   牛江丽
 * 创建日期:   ${date} ${time}
 * 类介绍  :
 * 构造参数:
 */
@Controller
@RequestMapping("/bookManage")
public class BookManageController {

    //映射
    @RequestMapping("/index")
    public String index(HttpServletRequest request) {
        return "/app/book/bookQuery/index";
    }

    @Resource
    private BookManageService bookManageService;

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        dateFormat.setLenient(false);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));   //true:允许输入空值，false:不能为空值
    }
    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月24日 下午15:30:00
     * 方法介绍:   借书登记
     * 参数说明:   @param bookManage
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/insertManage")
    public ToJson<BookManage> insertManage(BookManage bookManage, HttpServletRequest request){
      return bookManageService.insertManage(bookManage,request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月24日 下午15:31:00
     * 方法介绍:   修改借书信息
     * 参数说明:   @param bookManage
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/upManageById")
    public ToJson<BookManage> upManageById(BookManage bookManage,HttpServletRequest request){
       return bookManageService.upManageById(bookManage,request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月24日 下午15:32:00
     * 方法介绍:   根据id删除借书信息
     * 参数说明:   @param borrowId
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/delManageById")
    public ToJson<BookManage> delManageById(Integer borrowId){
       return bookManageService.delManageById(borrowId);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月24日 下午15:33:00
     * 方法介绍:   根据id查询借书信息
     * 参数说明:   @param borrowId
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selManageById")
    public ToJson<BookManage> selManageById(Integer borrowId){
        return bookManageService.selManageById(borrowId);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月24日 下午15:34:00
     * 方法介绍:   根据条件查询借书信息
     * 参数说明:   @param bookManage
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selManageByBookStatus")
    public ToJson<BookManage> selManageByCond(BookManage bookManage,HttpServletRequest request){
        return bookManageService.selManageByBookStatus(bookManage,request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月25日 上午9:55:00
     * 方法介绍:   查询借书管理列表（直接登记，不需要审批）
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selByRegFlag")
    public ToJson<BookManage> selByRegFlag(HttpServletRequest request){
        return  bookManageService.selByRegFlag(request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月25日 上午9:55:00
     * 方法介绍:   查询借书确认列表（不直接登记，待审批状态，当前登录人是审批人）
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selByRegFlagAndBookStatus")
    public ToJson<BookManage> selByRegFlagAndBookStatus(HttpServletRequest request){
       return bookManageService.selByRegFlagAndBookStatus(request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月26日 上午9:55:00
     * 方法介绍:   还书确认列表（不区分登记类型）都需要进行审批
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selByStatusQuire")
    public ToJson<BookManage> selByStatusQuire(HttpServletRequest request){
        return bookManageService.selByStatusQuire(request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月26日 上午9:55:00
     * 方法介绍:   还书管理列表（不区分登记类型），管理员帮助还书
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selByStatusManage")
    public ToJson<BookManage> selByStatusManage(HttpServletRequest request){
        return bookManageService.selByStatusManage(request);
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年10月26日 上午9:55:00
     * 方法介绍:   历史记录查询列表(deleteFlag=1的记录)
     * 返回值说明:
     */
    @ResponseBody
    @RequestMapping("/selDelFlag")
    public ToJson<BookManage> selDelFlag(HttpServletRequest request){
        return bookManageService.selDelFlag(request);
    }
}
